OneSignal MCP Server
A comprehensive Model Context Protocol (MCP) server for OneSignal push notifications, email, SMS, and user management. Enables AI assistants to interact with OneSignal through natural language.
Features
50+ tools for complete OneSignal API coverage
Multi-channel messaging: Push notifications, email, SMS/MMS
User management: Create, update, delete users and subscriptions
Segmentation: Dynamic targeting with filters and segments
Templates: Reusable message templates
iOS Live Activities: Start, update, and end Live Activities
Analytics: View outcomes, export data, track custom events
Multi-app support: Manage multiple OneSignal apps
Quick Start
Prerequisites
Python 3.10+
uv package manager (recommended) or pip
OneSignal account with API credentials
Installation
Get Your OneSignal Credentials
Log in to your OneSignal Dashboard
Go to Settings > Keys & IDs
Copy your App ID and REST API Key (format:
os_v2_app_xxxxx)(Optional) For org-level operations, get your Organization API Key from Organization Settings > API Keys
Client Setup
Claude Desktop
Add to your ~/.claude.json:
Claude Code (CLI)
Add to your ~/.claude/settings.json:
Cursor
Add to your .cursor/mcp.json in your project or ~/.cursor/mcp.json globally:
VS Code (with Continue or GitHub Copilot)
Add to your .vscode/mcp.json:
Alternative: Using .env File
Instead of setting credentials in the config, create a .env file:
Then simplify your MCP config:
Available Tools
Messaging
Tool | Description |
| Send basic push notification |
| Push with scheduling, images, buttons, filters |
| Send basic email |
| Email with HTML, scheduling, custom sender |
| Send SMS/MMS |
| SMS with scheduling, media, filters |
| Immediate transactional message |
Message Management
Tool | Description |
| List recent messages |
| Get message details |
| View delivery/click history |
| Cancel scheduled message |
| Export engagement CSV |
Users & Subscriptions
Tool | Description |
| Create user with identity |
| Get user details |
| Update user tags/properties |
| Delete user |
| Add email/SMS/push subscription |
| Enable/disable subscription |
| Remove subscription |
| Move to another user |
Segments & Templates
Tool | Description |
| List segments |
| Create segment with filters |
| Delete segment |
| List templates |
| Create template |
| Update template |
| Delete template |
iOS Live Activities
Tool | Description |
| Start Live Activity |
| Start with full options |
| Update running activity |
| End activity |
Analytics & Events
Tool | Description |
| View click/conversion metrics |
| Track user events for Journeys |
| Export message data |
App Management
Tool | Description |
| List configured apps |
| Switch current app |
| Add app configuration |
| Get app info |
| List API keys |
| Create new API key |
| Rotate API key |
Usage Examples
Send a Push Notification
Target Specific Users
Schedule a Message
Create a User
Track Events
Configuration Options
Variable | Required | Description |
| Yes | Your OneSignal App ID |
| Yes | REST API Key (format:
) |
| No | Organization API Key for org-level operations |
| No | Logging level (DEBUG, INFO, WARNING, ERROR) |
Troubleshooting
"No app currently selected"
Make sure your ONESIGNAL_APP_ID and ONESIGNAL_API_KEY are set correctly.
"Organization API Key not configured"
Some operations (like view_apps, create_app_api_key) require the ONESIGNAL_ORG_API_KEY.
API Errors
Verify your API key format starts with
os_v2_app_oros_v2_org_Check that your API key has the necessary permissions in OneSignal dashboard
Ensure your App ID is correct (UUID format)
Credits
This project is based on WeirdBrains/onesignal-mcp. Special thanks for the original implementation.
License
MIT License - see LICENSE file for details.