# OneSignal (verified)

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.

## Quick Start

```bash
# Connect this server (installs CLI if needed)
npx -y smithery mcp add onesignal/onesignal

# Browse available tools
npx -y smithery tool list onesignal/onesignal

# Get full schema for a tool
npx -y smithery tool get onesignal/onesignal create_alias_by_subscription

# Call a tool
npx -y smithery tool call onesignal/onesignal create_alias_by_subscription '{}'
```

## Direct MCP Connection

Endpoint: `https://onesignal.run.tools`

**Required config:**
- `app_id` (header) — Your OneSignal App ID
- `api_key` (header) — Your OneSignal REST API Key

## Tools (31)

- `create_alias_by_subscription` — Create or update identity aliases for the user who owns a given subscription. The `onesignal_id` alias is read-only and…
- `create_or_update_alias` — Create or update identity aliases for a user identified by alias. The `onesignal_id` alias is read-only and must not be…
- `create_segment` — Create a new audience segment with filter conditions. Maximum 200 filter entries.
- `create_subscription` — Create a new subscription and attach it to a user. Set `type` to the channel ("Email", "SMS", "iOSPush", "AndroidPush",…
- `create_template` — Create a new notification template for a OneSignal app.
- `create_user` — Create a new user in a OneSignal app. Provide an `identity` (e.g. {"external_id": "user-123"}) so the user can be refer…
- `export_audience_activity_csv` — Export audience activity for a notification to CSV. WARNING: Only 1 concurrent export is allowed per account — if a 409…
- `export_subscriptions_csv` — Export all subscriptions for a OneSignal app to CSV. WARNING: Only 1 concurrent export is allowed per account — if a 40…
- `get_segment` — Retrieve a single audience segment by ID. By default, includes full segment metadata and filters (`payload` object with…
- `get_template` — Retrieve a single notification template by ID.
- `get_user_identity` — Retrieve all identity aliases associated with a user. Identify the user by `alias_label` (typically "external_id") and …
- `get_user_identity_by_subscription` — Retrieve the identity aliases for the user who owns a given subscription.
- `list_messages` — List push notifications for a OneSignal app. Use `limit` (default 50, max ~250) and `offset` for pagination. Avoid larg…
- `list_segments` — List audience segments for a OneSignal app. Maximum 300 segments per page.
- `list_templates` — List notification templates for a OneSignal app. Maximum 50 per page.
- `onesignal_config` — Return the current OneSignal MCP server configuration and connected app details.
- `onesignal_health` — Check the health status of the OneSignal MCP server.
- `onesignal_reference_overview` — Return an overview of the OneSignal REST API reference, including available endpoints and rate limits.
- `send_message` — Send a push notification, email, or SMS via the OneSignal API. TIER 3 — HIGH IMPACT: confirmation is required before se…
- `start_live_activity` — Start an iOS Live Activity and deliver it to a specific device subscription.
- `transfer_subscription` — Transfer a subscription to a different user within the same app. Cross-app transfers are not supported. Rate limited to…
- `unsubscribe_email` — Unsubscribe an email address using the token from an email unsubscribe link. This endpoint uses token-based auth (no RE…
- `update_live_activity` — Update or end an active iOS Live Activity.
- `update_segment` — Update an existing audience segment's name and/or filter conditions. `name` is always required even if not changing it …
- `update_subscription` — Update an existing subscription (token, enabled status, or test type).
- `update_subscription_by_token` — Update a subscription identified by its channel type and token. Provide `subscription_type` and `token` to identify the…
- `update_template` — Update an existing notification template. The `name` field is required even if you are not changing it.
- `update_user` — Update an existing user identified by alias. Use `properties` to set tags, language, or country. Use `deltas` to increm…
- `view_message` — Retrieve a single notification by ID.
- `view_outcomes` — Retrieve outcome statistics for a OneSignal app (e.g. click counts, session duration). Note: data retention is approxim…
- `view_user` — Retrieve a user and their properties by alias. Use `alias_label` "external_id" with the user's external ID, or another …

```bash
# Get full input/output schema for a tool
npx -y smithery tool get onesignal/onesignal <tool-name>
```

## Resources

- `onesignal://reference/notifications` — OneSignal notification API endpoints — send, list, view, and cancel notifications.
- `onesignal://reference/users` — OneSignal user API endpoints — create, get, update, and delete users by alias.
- `onesignal://reference/subscriptions` — OneSignal subscription API endpoints — manage push, email, and SMS subscriptions.
- `onesignal://reference/segments` — OneSignal segment API endpoints — create, list, and delete segments.
- `onesignal://reference/journeys` — Journey orchestration guide, including audience modes, action types, and graph rules.

## Prompts (4)

- `delivery-report` (notification_id) — Get delivery statistics for a recent notification. If no ID is provided, lists recent notifications first.
- `lookup-user` (alias_id, alias_label) — Find a user by alias and display their properties and subscriptions.
- `onboard-user` (email, external_id, token) — Create a new user with an initial subscription (email or push token).
- `send-message` (channel, message, segment) — Walk through sending a push notification, email, or SMS to a segment or specific users.
