使用说明
OneSignal MCP服务器
用于OneSignal推送通知、电子邮件、短信和用户管理的综合模型上下文协议(MCP)服务器。使AI助手能够通过自然语言与OneSignal进行交互。
特性
- 50+工具 用于完整的OneSignal API覆盖范围
- 多渠道消息传递:推送通知、电子邮件、短信/彩信
- 用户管理:创建、更新、删除用户和订阅
- 分割:使用过滤器和分段进行动态定位
- 模板:可重复使用的消息模板
- iOS直播活动:开始、更新和结束实时活动
- 分析:查看结果、导出数据、跟踪自定义事件
- 多应用支持:管理多个OneSignal应用程序
快速开始
先决条件
- Python 3.10+
- 紫外线 包管理器(推荐)或pip
- 具有API证书的OneSignal帐户
安装
git clone https://github.com/chansearrington/onesignal-mcp.git
cd onesignal-mcp
获取您的OneSignal凭据
- 登录到您的 OneSignal仪表板
- 首选 设置>密钥和ID
- 复制您的 应用程序ID 和 REST API密钥 (格式:
os_v2_app_xxxxx) - (可选)对于组织级操作,请获取 组织API密钥 从 组织设置>API密钥
客户端设置
克劳德桌面版
添加到您的 ~/.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"
}
}
}
}
克劳德代码(CLI)
添加到您的 ~/.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/mcp.json 在您的项目或 ~/.cursor/mcp.json 全球地:
{
"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代码(使用Continue或GitHub Copilot)
添加到您的 .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"
}
}
}
}
替代方法:使用.env文件
不要在配置中设置凭据,而是创建一个 .env 文件:
cp .env.example .env
# Edit .env with your credentials
然后简化MCP配置:
{
"mcpServers": {
"onesignal": {
"command": "uv",
"args": ["run", "--with", "mcp", "--with", "python-dotenv", "--with", "requests", "/path/to/onesignal_server.py"],
"cwd": "/path/to/onesignal-mcp"
}
}
}
可用工具
消息传递
| 工具 | 说明 |
|---|---|
send_push_notification |
发送基本推送通知 |
send_advanced_push_notification |
使用日程安排、图像、按钮、过滤器进行推送 |
send_email |
发送基本电子邮件 |
send_advanced_email |
HTML电子邮件、日程安排、自定义发件人 |
send_sms |
发送短信/彩信 |
send_advanced_sms |
带有日程安排、媒体、过滤器的短信 |
send_transactional_message |
即时交易消息 |
消息管理
| 工具 | 说明 |
|---|---|
view_messages |
列出最近的消息 |
view_message_details |
获取消息详细信息 |
view_message_history |
查看交付/点击历史记录 |
cancel_message |
取消预定消息 |
export_audience_activity |
导出参与CSV |
用户和订阅
| 工具 | 说明 |
|---|---|
create_user |
创建具有身份的用户 |
view_user |
获取用户详细信息 |
update_user |
更新用户标签/属性 |
delete_user |
删除用户 |
create_subscription |
添加电子邮件/短信/推送订阅 |
update_subscription |
启用/禁用订阅 |
delete_subscription |
删除订阅 |
transfer_subscription |
移动到另一个用户 |
分段和模板
| 工具 | 说明 |
|---|---|
view_segments |
列出分段 |
create_segment |
使用过滤器创建分段 |
delete_segment |
删除分段 |
view_templates |
列出模板 |
create_template |
创建模板 |
update_template |
更新模板 |
delete_template |
删除模板 |
iOS直播活动
| 工具 | 说明 |
|---|---|
start_live_activity |
开始实时活动 |
start_live_activity_advanced |
从完整选项开始 |
update_live_activity |
更新跑步活动 |
end_live_activity |
结束活动 |
分析和事件
| 工具 | 说明 |
|---|---|
view_outcomes |
查看点击/转化指标 |
create_custom_events |
跟踪Journeys的用户事件 |
export_messages_csv |
导出消息数据 |
应用管理
| 工具 | 说明 |
|---|---|
list_apps |
列出已配置的应用程序 |
switch_app |
切换当前应用程序 |
add_app |
添加应用程序配置 |
view_app_details |
获取应用程序信息 |
view_app_api_keys |
列出API密钥 |
create_app_api_key |
创建新的API密钥 |
rotate_app_api_key |
旋转API键 |
使用示例
发送推送通知
"Send a push notification with title 'Hello!' and message 'Welcome to our app'"
目标特定用户
"Send a push notification to users with external_id user_123 and user_456"
安排消息
"Send a push notification tomorrow at 9am saying 'Good morning!' to the Daily Digest segment"
创建用户
"Create a user with external_id 'customer_789', email 'user@example.com', and tags plan=premium, signup_date=2024-01-15"
径赛项目
"Track a purchase event for user customer_789 with amount 99.99 and product_id SKU-123"
配置选项
| 变量 | 必填 | 描述 |
|---|---|---|
ONESIGNAL_APP_ID |
是 | 您的OneSignal应用程序ID |
ONESIGNAL_API_KEY |
是 | REST API密钥(格式: os_v2_app_xxx) |
ONESIGNAL_ORG_API_KEY |
否 | 组织API用于组织级操作的密钥 |
LOG_LEVEL |
否 | 日志记录级别(调试、信息、警告、错误) |
故障排除
“当前未选择应用程序”
确保你的 ONESIGNAL_APP_ID 和 ONESIGNAL_API_KEY 设置正确。
“组织API密钥未配置”
一些操作(如 view_apps, create_app_api_key)要求 ONESIGNAL_ORG_API_KEY.
API错误
- 验证您的API密钥格式以开头
os_v2_app_或os_v2_org_ - 检查您的API密钥在OneSignal仪表板中是否具有必要的权限
- 确保您的应用程序ID正确(UUID格式)
鸣谢
该项目基于 奇怪的降雨/单信号mcp特别感谢最初的实施。
许可证
MIT许可证-请参阅 许可证 文件以获取详细信息。