Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@OneSignal MCP Serversend a push notification to all iOS users about our new feature launch"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
git clone https://github.com/chansearrington/onesignal-mcp.git
cd onesignal-mcpGet 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:
{
"mcpServers": {
"onesignal": {
"type": "stdio",
"command": "uv",
"args": [
"run",
"--with", "mcp",
"--with", "python-dotenv",
"--with", "requests",
"/path/to/onesignal-mcp/onesignal_server.py"
],
"env": {
"ONESIGNAL_APP_ID": "your-app-id",
"ONESIGNAL_API_KEY": "os_v2_app_your-api-key"
}
}
}
}Claude Code (CLI)
Add to your ~/.claude/settings.json:
{
"mcpServers": {
"onesignal": {
"type": "stdio",
"command": "uv",
"args": [
"run",
"--with", "mcp",
"--with", "python-dotenv",
"--with", "requests",
"/path/to/onesignal-mcp/onesignal_server.py"
],
"env": {
"ONESIGNAL_APP_ID": "your-app-id",
"ONESIGNAL_API_KEY": "os_v2_app_your-api-key"
}
}
}
}Cursor
Add to your .cursor/mcp.json in your project or ~/.cursor/mcp.json globally:
{
"mcpServers": {
"onesignal": {
"command": "uv",
"args": [
"run",
"--with", "mcp",
"--with", "python-dotenv",
"--with", "requests",
"/path/to/onesignal-mcp/onesignal_server.py"
],
"env": {
"ONESIGNAL_APP_ID": "your-app-id",
"ONESIGNAL_API_KEY": "os_v2_app_your-api-key"
}
}
}
}VS Code (with Continue or GitHub Copilot)
Add to your .vscode/mcp.json:
{
"mcpServers": {
"onesignal": {
"command": "uv",
"args": [
"run",
"--with", "mcp",
"--with", "python-dotenv",
"--with", "requests",
"${workspaceFolder}/onesignal_server.py"
],
"env": {
"ONESIGNAL_APP_ID": "your-app-id",
"ONESIGNAL_API_KEY": "os_v2_app_your-api-key"
}
}
}
}Alternative: Using .env File
Instead of setting credentials in the config, create a .env file:
cp .env.example .env
# Edit .env with your credentialsThen simplify your MCP config:
{
"mcpServers": {
"onesignal": {
"command": "uv",
"args": ["run", "--with", "mcp", "--with", "python-dotenv", "--with", "requests", "/path/to/onesignal_server.py"],
"cwd": "/path/to/onesignal-mcp"
}
}
}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
"Send a push notification with title 'Hello!' and message 'Welcome to our app'"Target Specific Users
"Send a push notification to users with external_id user_123 and user_456"Schedule a Message
"Send a push notification tomorrow at 9am saying 'Good morning!' to the Daily Digest segment"Create a User
"Create a user with external_id 'customer_789', email 'user@example.com', and tags plan=premium, signup_date=2024-01-15"Track Events
"Track a purchase event for user customer_789 with amount 99.99 and product_id SKU-123"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.
Links
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.