OneSignal
OneSignal is a customer engagement platform that lets you send targeted push notifications, emails, SMS, and in-app messages, manage audiences, and track campaign performance. With the OneSignal MCP, manage your messaging directly from your AI assistant. Send push notifications, emails, and SMS by simply describing your audience and message. Check campaign delivery stats, build audience segments, manage templates, and handle user subscriptions all through conversation.
How to connect
https://onesignal.run.tools
tools/list returns the expected tools before relying on them in production.Tools
(31)-
create_alias_by_subscriptionCreate 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_aliasCreate or update identity aliases for a user identified by alias. The `onesignal_id` alias is read-only and must not be included.
-
create_segmentCreate a new audience segment with filter conditions. Maximum 200 filter entries.
-
create_subscriptionCreate 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_templateCreate a new notification template for a OneSignal app.
-
create_userCreate 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_csvExport 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_csvExport 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_segmentRetrieve 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_templateRetrieve a single notification template by ID.
-
get_user_identityRetrieve all identity aliases associated with a user. Identify the user by `alias_label` (typically "external_id") and `alias_id`.
-
get_user_identity_by_subscriptionRetrieve the identity aliases for the user who owns a given subscription.
-
list_messagesList 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_segmentsList audience segments for a OneSignal app. Maximum 300 segments per page.
-
list_templatesList notification templates for a OneSignal app. Maximum 50 per page.
-
onesignal_configReturn the current OneSignal MCP server configuration and connected app details.
-
onesignal_healthCheck the health status of the OneSignal MCP server.
-
onesignal_reference_overviewReturn an overview of the OneSignal REST API reference, including available endpoints and rate limits.
-
send_messageSend 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_activityStart an iOS Live Activity and deliver it to a specific device subscription.
-
transfer_subscriptionTransfer 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_emailUnsubscribe an email address using the token from an email unsubscribe link. This endpoint uses token-based auth (no REST API key required).
-
update_live_activityUpdate or end an active iOS Live Activity.
-
update_segmentUpdate 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_subscriptionUpdate an existing subscription (token, enabled status, or test type).
-
update_subscription_by_tokenUpdate 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_templateUpdate an existing notification template. The `name` field is required even if you are not changing it.
-
update_userUpdate 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_messageRetrieve a single notification by ID.
-
view_outcomesRetrieve outcome statistics for a OneSignal app (e.g. click counts, session duration). Note: data retention is approximately 30 days.
-
view_userRetrieve 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.