OneSignal消息推送服务

一个全面的OneSignal消息推送服务器,支持推送通知、邮件、短信和用户管理,允许AI助手通过自然语言与OneSignal交互。

  • by chansearrington
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 chansearrington/OneSignal-MCP

使用说明

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凭据

  1. 登录到您的 OneSignal仪表板
  2. 首选 设置>密钥和ID
  3. 复制您的 应用程序ID 和 REST API密钥 (格式: os_v2_app_xxxxx)
  4. (可选)对于组织级操作,请获取 组织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许可证-请参阅 许可证 文件以获取详细信息。

链接