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
Same URL, five paste targets. Ready surface · Auth required. Not a safe-to-install badge. Handshake this URL
Paste into Settings → MCP or .cursor/mcp.json.
{
"mcpServers": {
"onesignal-onesignal": {
"url": "https://onesignal.run.tools"
}
}
}
Settings → Connectors → Add → Custom → Web. Paste the URL. Enable in a new chat.
Claude → Settings → Connectors → Add → Custom → Web
Name: OneSignal
URL: https://onesignal.run.tools
OAuth only if this server requires it.
Save, start a new chat, enable the connector.
Developer mode custom connector. ChatGPT cannot reach localhost.
Settings → Apps & Connectors → Advanced → Developer mode ON
Create custom connector
Name: OneSignal
MCP server URL: https://onesignal.run.tools
Auth: none unless the server requires OAuth
New chat → + → Developer mode → enable the connector
Register the HTTPS URL, then claude mcp list.
claude mcp add --transport http onesignal-onesignal \
https://onesignal.run.tools
Pass on session/new as mcpServers when the agent advertised HTTP MCP.
[
{
"type": "http",
"name": "onesignal-onesignal",
"url": "https://onesignal.run.tools"
}
]
Paste into a README or docs site. The widget loads snippets from Influzer — still not a SAFE badge.
Same handshake clock as this listing (overlay / warm / seed; live tools/list only if that is missing). Indigo is live_ok, amber is auth_required, gray is unreachable. Not a SAFE badge. Stdio listings have no badge.
[](https://www.influzer.ai/mcp/probe?url=https%3A%2F%2Fonesignal.run.tools)
<div data-influzer-install="onesignal-onesignal"></div>
<script async src="https://www.influzer.ai/embed/install.js"></script>
https://www.influzer.ai/embed/mcp/onesignal-onesignal.md
JSON: https://www.influzer.ai/api/v1/install/onesignal-onesignal
Recipes using this server
No published recipes yet for this server.
Listing quality
Observable facts from our catalog and daily probe — not a safe-to-install badge.
- Surface
- Ready surface
- Live handshake
- Auth required
- Auth gate
- Auth gate
- Tools source
- tools/list (live)
Observable catalog + probe facts — not a safe-to-install badge.
Tools
(34)-
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_custom_eventsRecord custom events for OneSignal users, such as purchases, content views, or milestones. Use these to enter users into Journeys or trigger Wait Until nodes. Each event must set at least one of `external_id` or `onesignal_id`.
-
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_custom_eventsList the custom event definitions indexed for a OneSignal app, including each event's properties, sources, most recent occurrence, usage locations (segment/journey), storage and total counts, and retention duration. Requires OAuth authentication.
-
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_appsList OneSignal apps accessible to the authenticated user. Returns app names, IDs, and organization info. Supports pagination via limit and offset parameters.
-
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.
Tool source: tools/list (live) · last probed 2026-10-17